#include <iostream>
#include <unistd.h>
#include <signal.h>

using namespace std;

void handler(int signo)
{
  while(true)
  {
    cout << "get a signo" << signo << endl;
    sleep(2);
  }
}
int main()
{
  
  struct sigaction act, oact; //定义两个结构体对象
  act.sa_handler = handler; //赋予自定义捕捉方法
  act.sa_flags = 0;
  sigemptyset(&act.sa_mask);  //位图置0
  sigaddset(&act.sa_mask, 3); //阻塞3号信号
  sigaction(SIGINT, &act, &oact);//发送2号信号
  //捕捉2号信号后再发送3号信号，3号信号不会起作用
  while(true)
  {
    cout << "process is running..." << endl;
    sleep(1);
  }
  return 0;
}
